package com.doit.day06

object _06_试图限定 {
  def main(args: Array[String]): Unit = {


    //隐式方法
    implicit def toy2Bird(a: Any)= new Bird("玩具鸟")

    //加一个视图限定  试图限定限定得是，Bird这个类 如果说，有一个隐式方法或者隐士类，可以将你传进去得类型转换成
    //试图限定得哪个类型，那么你就可以往里面传
    def bitBird[T <% Bird](b:T)=b.fly()

    bitBird[Bird](new Bird("小麻雀"))

    bitBird[ToyBird](new ToyBird())

    bitBird[Int](10)



//    bitBird[Bird](new Bird("小鸟"))

//    bitBird[ToyBird](new ToyBird)
  }

}

class Bird(val name:String){
  def fly()={println(name + "飞走了")}

  def add()={
    println("hello")

  }
}

class ToyBird
